The development of the architecture of a software application involves several challenges. One of the many challenges faced by the architects is ensuring the realization of quality attribute requirements of the software application being developed. Some of the quality attribute requirements include performance, maintainability, and security. These quality attribute requirements are prescribed in an architecture specification of the software application.
During the development of the software application, software architecture is defined first based on the product requirements. This is called the prescriptive architecture. The low-level design of the software application is defined using the prescriptive architecture. The low-level design of the software application is further used to develop the code of the software application. The architecture that is reflected in the code is known as the descriptive architecture. However, in several cases, the descriptive architecture as reflected in the code of the software application, does not exhibit properties that are desired in the software application even though the prescriptive architecture appeared correct. This may be because during the process of low-level design and coding, the focus is more on the functional requirements of the software application than on the quality attribute requirements of the software application.
There exists a need to closely monitor the architecture and quality of the software application being developed during the entire software development lifecycle. Moreover, there also exists a need for the architect to know specific guidelines, principles, and approaches that are to be adopted during the development of software architecture to provide the quality requirements of the software are met.
Therefore, the object of the disclosure is to provide a method and a system to manage the quality of a software application during the software development lifecycle.